﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;

namespace Vara.Person
{
    public interface IPersonActions
    {
        /// <summary>
        /// Inserts a <code>Vara.Person.IPerson</code> object
        /// </summary>
        /// <param name="person">A new <code>Vara.Person.IPerson</code> object</param>
        void InsertPerson(IPerson person);

        /// <summary>
        /// Updates a <code>Vara.Person.IPerson</code> object
        /// </summary>
        /// <param name="person">The updated <code>Vara.Person.IPerson</code> object </param>
        void UpdatePerson(IPerson person);


        /// <summary>
        /// Deletes a <code>Vara.Person.IPerson</code> object
        /// </summary>
        /// <param name="person">The <code>Vara.Person.IPerson</code> to delete</param>
        void DeletePerson(IPerson person);


        /// <summary>
        /// Returns a <code>Vara.Person.IPerson</code> object by its unique identifier
        /// </summary>
        /// <param name="person"></param>
        IPerson ReturnPerson(string reference,string type);

        /// <summary>
        /// Loads the list <code>Vara.Person.IPerson</code> objects
        /// </summary>
        /// <param name="person"></param>
        void Refresh_People_List();

        /// <summary>
        /// Gets a list of <code>Vara.Person.IPerson</code> objects
        /// </summary>
        /// <param name="person"></param>
        List<IPerson> People { get; }

        DataTable Search_People(string Firstname,string Lastname,string Reference,bool IsStaff,bool IsStudent,bool IsStranger);

    }
}
